Rendering video over multiple windows

ABSTRACT

A method and system for rendering a video. A selection, by a user, of two or more occluded videos of multiple occluded videos that include (i) video on a displayed first page occluded by one or more pages of multiple other pages opened and displayed and (ii) video on selected pages of the multiple other pages occluded by an opening of subsequent pages of the other pages. A selection by the user of a page of the multiple other pages on which to view the two or more occluded videos is received. The two or more occluded videos are transferred simultaneously to the selected page. The two or more occluded videos are displayed on the selected page for continuous viewing by the user.

This application is a continuation application claiming priority to Ser.No. 14/748,669, filed Jun. 24, 2015, now U.S. Pat. No. 10,108,309,issued Oct. 23, 2018, which is a continuation of application Ser. No.13/343,265 filed Jan. 4, 2012, U.S. Pat. No. 9,069,374, issued Jun. 30,2015.

TECHNICAL FIELD

The present invention relates generally to the display of video on acomputer, and more specifically, to watching video and web video contentover multiple windows on a computerized device.

BACKGROUND

The Internet is a popular means for distributing and viewing videocontent from a wide variety of media sources, as well as user generatedvideo content. A variety of different types of videos from varioussources may be displayed on a computerized device. For instance,displayed videos may include video advertisements, recorded broadcastvideos (e.g., news broadcasts, cable and/or television shows andstations, etc.), user generated videos (e.g., videos created anduploaded to a particular website by an individual), and even real-timedata streaming videos (e.g., live news coverage, video conferencing,etc.).

A user will often open and view a video within a window of acomputerized device. The window may contain one or more programs thatallow executing several programs simultaneously (i.e., allowsmultitasking), and may include one or more tabs within each window.After the video is opened in the first tab, and perhaps even while thevideo is being played, the user may open another tab within such window,or even open a different window on the computerized device. Forinstance, the user may receive a chat message and go to chat, or decideto open another tab, or even go to email. In such an event, the videothat is opened and being played in the first tab becomes occluded (i.e.,obstructed), such that, the user is not able to view such video. Theocclusion of the video may also cause the video to stop playing alltogether.

Once a video becomes occluded the user will miss out watching thecontent of the Video until the user goes back to the window that has thevideo. By the time the user goes back to this window/tab, the videowould have advanced much further and so the user will have to replay thevideo from where he had left earlier, typically through a manualprocess. In instances where the video was buffered from the Internet,the user will have to buffer that piece of the video again.

In other instance, once a video becomes occluded the user may need tobrowse back and forth amongst the various open tabs and/or windows toview the opened video. When the tab or window having the previouslyviewed video has been reopened, the user may find that the video hasstopped playing, or the user may need to search for the video if thepage has moved onto a next video within a sequence of videos. Often, ifthe user needs to reopen the video, such video does not open at thelocation where the video stopped playing. Rather, the video is loadedfrom its beginning and the user must watch the entire video again.

In other instances, the user may open several windows on thecomputerized device and have different videos playing simultaneously inthe different windows. The user may also need to browse back and forthamongst the different open windows to watch the videos being playedthereon, such that, the user will miss portions of videos being playedon the windows not being currently viewed.

Accordingly, there continues to be a need in the art forcomputer-implemented methods, apparatus, and computer program codes forrendering videos watched in a multi-window computer system where peoplewatch items over multiple windows and/or tabs.

SUMMARY

According to one embodiment of the present invention, the invention isdirected to a computer-implemented method of rendering a video byviewing a first page having visual content on a computerized device andthen viewing a second page on the computerized device subsequent to theviewing of the first page. In so doing, the second page occludes displayof the visual content on the first page. Source location of the visualcontent is then identified from the source code of the first page, andsuch source location of the visual content is retrieved. This sourcelocation of the visual content is input into source code of the secondpage to transfer the visual content to the second page. The visualcontent may then be displayed on the second page.

In other embodiments, the invention is directed to a computer programproduct for rendering a video. The computer program product includes acomputer readable storage media and a first, second, third and fourthprogram instructions that are all stored on such computer readablestorage media. The first program instructions identify source locationof visual content from within source code of a first page open on acomputerized device, the visual content being occluded by the opening ofa second page on the computerized device. The second programinstructions retrieve the source location of the visual content. Thethird program instructions input the source code of the visual contentinto source code of the second page to transfer the visual content tothe second page. The fourth program instructions display the visualcontent on the second page.

In still other embodiments, the invention is directed to a computersystem that includes a central processing unit (CPU), a computerreadable memory, and a computer readable storage media. The computersystem also includes a first, second, third and fourth programinstructions that are all stored on the computer readable storage mediafor execution by the CPU via the computer readable memory. The firstprogram instructions identify source location of visual content fromwithin source code of a first page open on a computerized device, thevisual content being occluded by the opening of a second page on thecomputerized device. The second program instructions retrieve the sourcelocation of the visual content. The third program instructions input thesource location of the visual content into source code of the secondpage to transfer the visual content to the second page. The fourthprogram instructions display the visual content on the second page.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1A is a representation of a number of different pages with one ormore videos on selected pages occluded by subsequently viewed or openedpages.

FIGS. 1B-C are representations of different pages showing occludedvideos being transferred to a subsequently viewed or opened page for thenon-occluded viewing of such video in accordance with the variousembodiments of the invention.

FIGS. 2A-B illustrate flowcharts of exemplary process flows and steps ofrendering a non-occluded video on a page in accordance with the variousembodiments of the invention.

FIGS. 3A-B illustrate exemplary diagrams of data processing environmentsin accordance with the various embodiments of the invention.

It is noted that the drawings are not to scale. The drawings areintended to depict only typical aspects of the invention, and thereforeshould not be considered as limiting the scope of the invention. In thedrawings, like numbering represents like elements between the drawings.

DETAILED DESCRIPTION

Reference is made herein to embodiments of the invention. However, itshould be understood that the invention is not limited to specificdescribed embodiments. Instead, any combination of the followingfeatures and elements, whether related to different embodiments or not,is contemplated to implement and practice the invention. Furthermore,although embodiments of the invention may achieve advantages over otherpossible solutions and/or over the prior art, whether or not aparticular advantage is achieved by a given embodiment is not limitingof the invention. Thus, the following aspects, features, embodiments andadvantages are merely illustrative. Likewise, reference to “theinvention” shall not be construed as a generalization of any inventivesubject matter disclosed herein.

Generally, when a user is watching a video on a first page of acomputerized device, and then clicks on another page (i.e., another tabwithin such first window or opens a new window), the video being watchedon the first page becomes occluded. That is, the newly opened pageobstructs viewing of the video residing and playing on the first page.The various embodiments of the invention provide methods, systems, andcomputer program products that prevent video and/or audio that iscurrently being viewed and/or listened to from being obstructed bysubsequently opened page(s). The methods, systems, and computer programproducts of the invention enable video and/or audio that is currentlybeing watched, or listened to, to be carried forward to newly openedpages (i.e., those pages that are viewed subsequently) so that viewing,and listening to, of such video may continue.

While not meant to be limiting, for ease of understanding the variousembodiments of the invention, the term occluded as used herein refers todigital content that is either obstructed or blocked from the user'svision and/or hearing, as well as content that has ceased playing oroperating all together, due to opening of a new page(s). The term pageas used herein refers to both a window and a tab on the computerizeddevice. Such a window may include a tab, or even one or more tabs thatare simultaneously opened in the window. Also, the pages may be twodifferent windows, each having one or more tabs, simultaneously openedon the computerized device. As used herein the term content refers todigital data relating to, but not limited to, visual, audio, or bothvisual and audio digital data. For instance, visual content may includea silent video being watched on the computerized device (i.e., withoutsound), audio content may be a song being played, and both visual andaudio content may include non-silent videos that include both visual andauditory outputs (e.g., a music video, a movie, a news clip, real-timevideo conferencing, etc.)

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an”, and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising”, when used in this specification, specify thepresence of stated features, integers, steps, operations, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as systems, methods or computer programproducts. Accordingly, aspects of the present invention may take theform of an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing.

In the context of this document, a computer readable storage medium maybe any tangible medium that can contain, store, communicate, propagate,or transport a program for use by or in connection with an instructionexecution system, apparatus, or device. Note that the computer usable orcomputer readable medium could even be paper or another suitable mediumupon which the program is printed, as the program can be electronicallycaptured via, for instance, optical scanning of the paper or othermedium, then compiled, interpreted, or otherwise processed in a suitablemanner, if necessary, and stored in a computer memory.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer readable medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk. C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions mayalso be stored in a computer readable medium that can direct a computeror other programmable data processing apparatus to function in aparticular manner, such that the instructions stored in the computerreadable medium produce an article of manufacture including instructionmeans which implement the function/act specified in the flowchart and/orblock diagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process. The instructionsthat execute on the computer or other programmable apparatus provideprocesses for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

Embodiments of the invention may be provided to end users through acloud computing infrastructure. Cloud computing generally refers to theprovision of scalable computing resources as a service over a network.More formally, cloud computing may be defined as a computing capabilitythat provides an abstraction between the computing resource and itsunderlying technical architecture (e.g., servers, storage, networks),enabling convenient, on-demand network access to a shared pool ofconfigurable computing resources that can be rapidly provisioned andreleased with minimal management effort or service provider interaction.Thus, cloud computing allows a user to access virtual computingresources (e.g., storage, data, applications, and even completevirtualized computing systems) in “the cloud,” without regard for theunderlying physical systems (or locations of those systems) used toprovide the computing resources.

Typically, cloud computing resources are provided to a user on apay-per-use basis, where users are charged only for the computingresources actually used (e.g. an amount of storage space consumed by auser or a number of virtualized systems instantiated by the user). Auser can access any of the resources that reside in the cloud at anytime, and from anywhere across the Internet. In context of the presentinvention, a user may access applications or related data available inthe cloud that allow video and/or audio to be transferred from onewindow/tab to another window/tab.

For example, the hardware, software, networking, connectivity, services,etc. of the cloud computing environment provide a user with the onlineservice(s) of continuously viewing a video regardless of the window/tabthe user is viewing by transferring such video(s) from its originalwindow/tab (e.g., from its original URL) to the window/tab that suchuser is currently viewing. Cloud computing identifies and locates thevideo to its exact source location within the source code of thewindow/tab on which such video resides, copies the source location ofthe video and uploads it to a window/tab that is currently being viewedby the user so that the user is provided with the service of viewing thevideo(s) in a non-occluded manner. When hosted in a cloud environment,browsers are modified to accept applications in the cloud environmentfor offering and implementing the services of the various embodiments ofthe invention.

Referring now to the drawings, FIG. 1A is a representation of a numberof different Pages open on a computerized device. Again, as the termPages is used herein, these Pages may be different windows 1, 2, 3, 4,etc. or different tabs 1, 2, 3, 4, etc. within an open window. Page “3”is shown having two different videos, i.e., Video 1 and Video 2.Alternatively, Video 1 may be on a different Page than that of Video 2.Either one or both of these Videos 1, 2 may be playing on theirrespective Page. Once the user opens Page “4”, which again may beanother tab or another window, both Video 1 and Video 2 become occluded.In such an event, the user is unable to view Video 1 and Video 2 sinceboth are obstructed by Page “4,” or one or both of Videos 1 and 2 havestopped playing by the opening of Page “4.”

To avoid video occlusion by subsequent Page opening as shown in FIG. 1A,the various embodiments of the invention enable a video from a previousopen Page to be attached and transferred to a subsequently open Page forviewing thereon. Referring to FIG. 1B, a previously open Page (e.g.,Page “3”) may have one or more videos thereon. At least one or more ofthese videos may be opened and playing on such previous Page. When theuser opens a new Page (e.g., Page “4”), at least one or more of theVideos that are open and playing on the previous Page (e.g., Page “3”)moves with the newly opened Page (e.g., Page “4”).

FIG. 1B shows at least one of the Videos (e.g., Video 2) moving with thenewly opened Page (e.g., Page “4”). However, depending upon theparticular preferences chosen by the user, more than one video may beattached to another open Page, including videos from different Pagesbeing attached to a single newly opened Page. FIG. 1C shows multiplevideos being transferred to the newly opened Page (e.g., Page “4”). Forinstance, one or more videos may be transferred to the new Page (e.g.,Page “4”) from a first Page (e.g., Videos 1, 2 from Page “3”), and stillother videos may be transferred from a second Page (e.g., Video 3 fromPage “2”).

For ease of understanding the invention reference is made herein to thevideo being transferred to a newly opened Page or subsequently openedPage. However, it should be appreciated and understood that the video(s)may be transferred to a currently viewed Page within a sequence ofopened Pages. The user may select a desired Page (or Pages) from anumber of different Pages to transfer the one or more Video's thereto.In this manner, the user may browse back and forth amongst a number ofdifferent Pages while still being able to view the video(s) throughoutthe entire time of browsing different Pages.

For instance, if a user has five (5) different Pages open on thecomputerized device, the user may select an option on the device thattransfers the video(s) selected by the user to be transferred to aspecific one of such five (5) different Pages. As an example, and notmeant to be limiting, if the user has five (5) different search windowsopen, with one or more of such search windows having video(s), and thefifth open window is an e-mail window, the user may select an optionthat transfers one or more selected videos to the user's e-mail windowso that the user can watch the video(s) while checking e-mail. As such,when the user goes to check e-mail, the switching from a first windowhaving video to a second window having e-mail does not occlude orobstruct the video of the first window. Rather, such video istransferred to the second window for viewing by the user.

In accordance with the various embodiments of the invention, the Pagethat video is transferred to may be a last opened Page (i.e., lastopened window/tab), or it may reside within a sequence of Pages (i.e.,windows/tabs) opened by the user. In alternate embodiments, rather thanthe user selecting which Page the video is to be transferred to, by adefault setting the video(s) may automatically be transferred to a lastopened Page within a sequence of opened Pages, or even to all the Pageswithin such sequence of Pages with an option of viewing by the user ateach Pages. That is, the user does not have to view the video on thePage(s) to which it is transferred to, rather, the user may have anoption of viewing such video(s) thereon (e.g., by selecting a view videooption key).

Referring to FIGS. 2A-2B, a process flow of the invention is shown fortransferring video to a desired or currently open Page (window or tab)in accordance with one or more embodiments of the invention.

Upon starting the present methods, systems and program products of theinvention a windows locator 10 component locates open Pages on thecomputerized device. Again, these Pages may be different open windows,or one or more open tabs within one or more open windows. In one or moreembodiments, the located open Pages may be all open Pages on thecomputerized device (i.e., every open Page). In other embodiments thelocated open Pages may be only those Pages that have been specificallychosen or designated by the user. That is, the user may select certainPages of interest having video(s) that is to be transferred to a desiredend-result Target Page.

The Windows Locator 10 uniquely identifies each open Page and itscorresponding page location. The Page identification may include thePage's URL or address where it can be located either on the computerizeddevice or on the Internet. Data identifying the open Pages and theirlocations is stored in a first Database 12 of the invention. Again, thestored Page identifications may be URL's or addresses of windows and/ortabs opened in a previously opened Page, or those that are selected bythe user.

A Video Detector 14 component retrieves all of the Pages stored withinthe Database 12, including all information relating to Pageidentification and location. The Video Detector 14 retrieves each Page'sdigital data, and may organize and sort such pages in the chronologicalorder or sequence in which such Pages were opened. Optionally, theretrieved Pages may be organized and sorted in chronological order orsequence by a Focus Extractor 18 of the invention discussed furtherbelow.

A Query 16 is performed on the retrieved Page data. This Query 16 may beperformed by a component residing within the Video Detector 14, or itmay be performed by a component separate from the Video Detector 14.Query 16 determines whether or not each Page retrieved by the VideoDetector 14 contains one or more videos and/or audio. In particular, itis determined whether any of the Pages from the Video Detector 14 have avideo/audio playing, is on pause, or has stopped playing. Typically,video displays include audio (e.g., a music video), and audio includesvisual displays (e.g., the stop, pause and play controls, volumecontrol, tremble control, etc.) In the various embodiments, all of suchvisual and auditory signals are located and identified for transferringto a different Page in accordance with the invention.

If there are no Pages having video and/or audio, then the process flowsback to Database 12 to continue processing for any subsequently openedPages by the user. That is, the invention may run continuously so thatit is implemented on all Pages opened by the user during the user'scurrent session on the computerized device. The stored data may also besaved for a later session and retrieved once the user signs into a newsession on the device.

Referring to Query 16, if it is determined that certain Pages from thePages retrieved by the Video Detector 14 do have video and/or audioplaying, paused or stopped, those Pages having such video and/or audioare identified. Information relating to the identity (e.g., URL) of suchPages having video and/or audio is passed to the Focus Extractor 18component of the invention. Also sent to the Focus Extractor 18 is acomplete list of all Pages retrieved by the Video Detector 14. Again,the Video Detector 14 may sort the Pages in chronological order in whichthey were opened, or the Focus Extractor 18 may chronologically sortsuch Pages.

Identification of the Pages having video and/or audio and the list ofchronologically sorted Pages is analyzed via Query 20. This analysisdetermines whether any of the identified Pages that include video/audiohave one or more video(s)/audio that is occluded by a subsequentlyopened Page. The query component 20 may reside within the FocusExtractor 18 or may be a component separate thereto.

In particular, once the list of chronologically open Pages has beengenerated, those Pages identified as having video and/or audio arecompared against the chronological list to determine which one(s) ofsuch Pages have video/audio occluded by the opening of a subsequentPage. That is, occluded videos are detected and the Page on which suchoccluded video/audio resides is identified. These occluded video(s)and/or audio may have been open and playing, and then subsequentlyoccluded by the opening of a next Page. Alternatively, the video/audiomay have been paused with the intent to resuming playing at a latertime, or even stopped playing all together. Both paused and stoppedvideos may be occluded by the subsequent opening of another Page.

Once the list of occluded video(s) and/or audio is determined andgenerated, Data Fetcher 22 retrieves digital data of the Page having theoccluded video and/or audio. This data contains the location of theoccluded video and the amount of time for which it had been playedbefore being occluded. Another Data Fetcher 24 retrieves digital data ofa Target Page 36. The Target Page 36 is the end result Page that theoccluded video and/or audio is to be transferred to for viewing orplaying thereon.

A Webpage Parser 26 analyzes the occluded video Page's digital data fromData Fetcher 22 to retrieve and identify source location for theoccluded video. In doing so, a beginning and an end (i.e., start andstop) of the occluded video may be determined, such locationsidentified, and then stored in a Database 30. The particular Page'slocation and identification (e.g., a URL) may also be stored in theDatabase 30. Alternatively, if the occluded video was paused or stopped,the point at which such video was paused or stopped may be determinedalong with an end time of the video. Both the time at which the videowas paused or stopped (e.g., a specific time or amount of time into playof the video) and the end time of the video are identified and stored inDatabase 30. In one or more embodiments, a plurality of occluded video'sfrom one or more Pages may have their source locations identified (e.g.,start and end of each video, timed point at which video waspaused/stopped with end time, etc.), with such plurality of occludedvideo data all being stored in Database 30.

Webpage Parser 28 analyzes the digital data of the Target Page 36 fromData Fetcher 24. In doing so, the source code and digital data structureof the Target Page 36 are determined and stored in Database 32. Thesource code and digital data structure of the Target Page 36 may includean identification of one or more locations on the Target Page where theoccluded video(s) may be viewed on such Target Page. The user may havethe option of selecting where the video is to be viewed on the TargetPage 36. That is, the location of where video's are to be displayed onthe Target Page, selected ones of a number of videos to be displayed, aswell as the order in which to display videos all may be chosen by theuser according to the user's preferences. Alternatively, exact locationsfor viewing video may be set by default by the Target Page's sourcecode. Also, the Target Page may be provided with source code (i.e.,instructions) that set the order and priority of viewing certain videosfrom a number of videos that may be transferred to such new Target Page.For instance, where multiple videos are occluded and transferred to theTarget Page, the invention may give a highest priority to a livestreaming video (e.g., live/real-time chat with one or more individuals(i.e., video conferencing, skype, etc.), all of such individuals' videobeing moved simultaneously for continuous viewing of all by the user), anext highest priority to recorded streaming video (e.g., youtubevideos), a subsequent highest priority to videos played locally from thecomputerized device, and so on. Of course, the user may always changesuch settings based on the desired user's preferences.

In order to view the occluded video(s) on the Target Page 36, a PageAggregator 34 receives the occluded video(s) data from Database 30, thesource code and digital data structure of the Target Page 36 fromDatabase 32, and any selected user preferences. Using the occludedvideo(s) data, the Page Aggregator 34 retrieves the occluded video(s)from its identified location on the Page it was identified as residingon. The retrieved data may be the source location of such occludedvideo(s). Source location refers to the particular location from whichthe occluded video is fetched. Often, a video may not be contained inthe source code of the webpage, but rather has a link to the sourcelocation of the video that resides on a different page. This link to thesource location of the video may be fetched and uploaded into the sourcecode of the second page. For instance, the source location may befetched from a specific URL from which a webpage embeds the video in(e.g., http://www.youtube.com/watch?v=trFfrOiCSWQ), it may be fetchedfrom a specific storage unit on the end-user's computing device, or itmay be fetched from a streaming application such as in a video chatsystem such as Skype. The content that gets transferred is the locationand time of the video that was played in the previous window. The linkof the location is embedded into the new target page, along with anyadditional code that helps to embed the video in such target page.

The Page Aggregator 34 may retrieve the entire video(s) or only aportion of the video. Alternatively, where multiple videos have beenidentified as being of interest to be transferred to a later openedPage, selected ones of such videos may be transferred in theirentireties while others are transferred in portions thereof.

The Page Aggregator 34 also retrieves the source code and digital datastructure of the Target Page 36. An exact location of where the videosare to be transferred onto the Target Page 36 may be included within theTarget Page's source code and digital data structure retrieved by thePage Aggregator 34. Alternatively, the location may be set by the userpreferences. The Page Aggregator 34 then uploads the source location andrequired code of the occluded video(s) into the identified locationwithin the Target Page's source code and digital data structure. Thisuploading and inclusion of source location modifies the desired end page(i.e., the original source code of the target page) to result in a newTarget Page 36 having source location of the non-occluded video(s). Theone or more videos are transferred to this new Target Page 36 to renderviewing of such video(s) in a non-occluded manner.

In accordance with the various embodiments of the invention, a user isable to continuously watch a video when opening a new tab or window(i.e., the new Target Page 36) since the video is transferred to suchnew tab or window. The user may also transfer one or more videos to thisnew Target Page 36 from one or more different tabs or different windows.Again, in one or more embodiments the new Target Page may be a mostcurrently opened tab/window. Since portions of videos may be transferredto the new Target Page 36, the user may watch a video from a previouslyviewed Page on this new Target Page not just at the beginning of suchvideo but also starting from any portion of the video. For instance, theuser may be able to watch the video from the point in the video where itwas stopped in the previous window or tab. As such, the video, either inits entirety or any portion thereof, will not be lost when the user goesfrom one Page to another on the device. The user is also able tomulti-task on this new Target Page 36 by watching a video from aprevious Page as well as performing tasks original to such Target Page(e.g., check e-mail, browse, shop, chat, instant message, online videochat, etc.).

It should be appreciated and understood that the invention is not onlyfor the transfer of pre-recorded videos or videos stored online, butalso includes the transfer of online video chat capabilities to acurrently viewed Page, which may be a most recently opened Page. Forinstance, real-time video chat conferencing may be automatically movedand transferred to a most currently viewed Page. While reference hasbeen made herein to the Page being a most recently opened Page, itshould be appreciated and understood that the Page may be a mostcurrently viewed Page from a number of opened Pages, whereby thevideo(s) is transferred back and forth amongst these various openedPages so that the video(s) may be viewed at all times by the user. Thatis, the video(s) may be sequentially transferred in a sequence thatcorresponds to the sequence in which the user views the number ofdifferent tabs/windows.

The various embodiments of the invention carry and save both video andaudio (e.g., songs) over multiple tabs or windows to avoid videoocclusion by other tabs or windows. The video may be saved and carriedover at a particular time point within such video so that the user maywatch or resume play at such particular point or time within the video.That is, a time for which the visual content in the first page wasplayed before being occluded may be identified followed by inputting thesource location of the visual content and the time played into sourcecode of the second page. A user may then watch the visual content on thesecond page from the point at which the video was occluded (i.e., fromthe identified time played) forward. This time played may be a time t=0when the video has not started playing, or it may be t=X whereby Xrefers to any point or location within the video after it play thereofhas started. In various embodiments, regardless of the time played beingidentified and then transferred to the second page, the entirety of thevideo may be transferred to the second page so that the user may watchsuch video from the time played “t” or the user may watch the video fromthe beginning by using the video slider to start such video from thebeginning. The invention also provides the user with controls to setparticular preferences for both selecting and viewing desired video(s)and/or audio.

Exemplary diagrams of data processing environments are shown in FIGS.3A-B in which embodiments of the invention may be implemented. It shouldbe appreciated and understood that these drawings are only exemplary andare not intended to assert or imply any limitation with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environments may be made.

A representation of a network of data processing systems in whichembodiments of the invention may be implemented are shown in FIG. 3A.Network data processing system 100 may be a network of computers inwhich the illustrative embodiments may be implemented. Network dataprocessing system 100 contains network 102, which is the medium used toprovide communications links between various devices and computersconnected together within network data processing system 100. Network102 may include connections, such as wire, wireless communication links,or fiber optic cables.

In the depicted example, server 104 and server 106 connect to network102 along with storage unit 108. In addition, clients 110, 112, and 114(e.g., personal computers or network computers) connect to network 102.The servers may provide data, such as boot files, operating systemimages, and applications to clients 110, 112, and 114. Network dataprocessing system 100 may include additional servers, clients, and otherdevices not shown. The program code located in network data processingsystem 100 may be stored on a computer recordable storage medium anddownloaded to a data processing system or other device for use. Forexample, program code may be stored on a computer recordable storagemedium on server 104 and downloaded to client 110 over network 102 foruse on client 110.

Network data processing system 100 may be the Internet with network 102representing a worldwide collection of networks and gateways that usethe Transmission Control Protocol/Internet Protocol (TCP/IP) suite ofprotocols to communicate with one another. At the heart of the Internetis a backbone of high-speed data communication lines between major nodesor host computers, consisting of thousands of commercial, governmental,educational, and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as, for example, anintranet, a local area network (LAN), or a wide area network (WAN), orwithin a cloud computing environment. Again, these figures are meant tobe examples and not as an architectural limitation for the differentillustrative embodiments.

The block diagram of FIG. 3B illustrates a data processing system ofcertain embodiments of the invention. The data processing system 200 isan example of a computer, such as server 104 or client 110 in FIG. 3A,in which computer usable program code or instructions implementing theprocesses may be located. The data processing system 200 may includecommunications fabric 202, which provides communications betweenprocessor unit 204, memory 206, persistent storage 208, communicationsunit 210, input/output (I/O) unit 212, and display 214.

A central processing unit (CPU) 204 serves to execute instructions forsoftware that may be loaded into memory 206. Processor unit 204 may be aset of one or more processors or may be a multi-processor core,depending on the particular implementation. Further, processor unit 204may be implemented using one or more heterogeneous processor systems inwhich a main processor is present with secondary processors on a singlechip. As another illustrative example, processor unit 204 may be asymmetric multi-processor system containing multiple processors of thesame type.

Memory 206 and persistent storage 208 are examples of storage devices. Astorage device is any piece of hardware that is capable of storinginformation either on a temporary basis and/or a permanent basis. Memory206, in these examples, may be, for example, a random access memory orany other suitable volatile or non-volatile storage device. Persistentstorage 208 may take various forms depending on the particularimplementation. For example, persistent storage 208 may contain one ormore components or devices. For example, persistent storage 208 may be ahard drive, a flash memory, a rewritable optical disk, a rewritablemagnetic tape, or some combination of the above. The media used bypersistent storage 208 also may be removable. For example, a removablehard drive may be used for persistent storage 208.

Communications unit 210 provides for communications with other dataprocessing systems or devices. In these examples, communications unit210 may be a network interface card. Communications unit 210 may providecommunications through the use of either or both physical and wirelesscommunications links. Input/output unit 212 allows for input and outputof data with other devices that may be connected to data processingsystem 200. For example, input/output unit 212 may provide a connectionfor user input through a keyboard and mouse. Further, input/output unit212 may send output to a printer. Display 214 provides a mechanism todisplay information to a user.

Instructions for the operating system and applications or programs arelocated on persistent storage 208. These instructions may be loaded intomemory 206 for execution by processor unit 204. The processes of thedifferent embodiments may be performed by processor unit 204 usingcomputer implemented instructions, which may be located in a memory,such as memory 206. These instructions are referred to as program code,computer usable program code, or computer readable program code that maybe read and executed by a processor in processor unit 204. The programcode in the different embodiments may be embodied on different physicalor tangible computer readable media, such as memory 206 or persistentstorage 208.

Program code 216 may be located in a functional form on computerreadable media 218 that is selectively removable and may be loaded ontoor transferred to data processing system 200 for execution by processorunit 204. Program code 216 (i.e., instructions) and computer readablemedia 218 form computer program product 220 in these examples. Thecomputer readable media 218 may be in a tangible form, such as, forexample, an optical or magnetic disc that is inserted or placed into adrive or other device that is part of persistent storage 208 fortransfer onto a storage device, such as a hard drive that is part ofpersistent storage 208. In a tangible form, computer readable media 218also may take the form of a persistent storage, such as a hard drive, athumb drive, or a flash memory that is connected to data processingsystem 200. The tangible form of computer readable media 218 is alsoreferred to as computer recordable storage media. In some instances,computer recordable media 218 may not be removable.

Alternatively, program code 216 may be transferred to data processingsystem 200 from computer readable media 218 through a communicationslink to communications unit 210 and/or through a connection toinput/output unit 212. The communications link and/or the connection maybe physical or wireless in the illustrative examples. The computerreadable media also may take the form of non-tangible media, such ascommunications links or wireless transmissions containing the programcode.

In some illustrative embodiments, program code 216 may be downloadedover a network to persistent storage 208 from another device or dataprocessing system for use within data processing system 200. Forinstance, program code stored in a computer readable storage medium in aserver data processing system may be downloaded over a network from theserver to data processing system 200. The data processing systemproviding program code 216 may be a server computer, a client computer,or some other device capable of storing and transmitting program code216.

Again, these examples of the data processing system 200 are not meant tobe limiting. Rather, the data processing system 200 may be implementedin various forms. For example, data processing system 200 may be acomputer, a workstation, a laptop computer, a mobile phone, a personaldigital assistant, or some other suitable type of data processingsystem. The various embodiments of the invention may be implementedusing any hardware device or system capable of executing program code.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method for rendering a video, said methodcomprising: receiving, by one or more processors of a computer system, aselection by a user of two or more occluded videos of a plurality ofoccluded videos comprising (i) video on a first page displayed on acomputerized device, said video on the first page occluded by one ormore pages of a plurality of other pages sequentially opened anddisplayed on the computerized device and (ii) video on selected pages ofthe plurality of other pages occluded by an opening of subsequent pagesof the other pages; receiving, by the one or more processors, aselection by the user of a page of the plurality of other pages on whichto view the two or more occluded videos; transferring simultaneously, bythe one or more processors, the two or more occluded videos to theselected page; and displaying, by the one or more processors, the two ormore occluded videos on the selected page for continuous viewing by theuser.
 2. The method of claim 1, said displaying comprising displayingthe two or more occluded videos on the selected page for continuousviewing by the user while the user is multitasking on the selected page.3. The method of claim 1, said method comprising: identifying andretrieving, by the one or more processors, a source location of eachoccluded video of the two or more occluded videos; and inputting, by theone or more processors, the source location of each occluded video ofthe two or more occluded videos into source code of the selected pagefor implementing said transferring the two or more occluded videos tothe selected page.
 4. The method of claim 1, said method comprising:receiving, by the one or more processors, a selection by the user of anorder of displaying the one or more occluded videos on the selectedpage.
 5. The method of claim 1, wherein the selected page sets an orderof displaying the two or more occluded videos on the selected page. 6.The method of claim 1, wherein a cloud computing system comprises thecomputer system.
 7. The method of claim 1, wherein the video on thefirst page is selected from the group consisting of video being playedon the first page, video paused on the first page, and video stopped onthe first page.
 8. A computer program product, comprising one or morecomputer readable hardware storage devices having computer readableprogram code stored therein, said program code containing instructionsexecutable by one or more processors of a computer system to implement amethod for rendering a video, said method comprising: receiving, by theone or more processors, a selection by a user of two or more occludedvideos of a plurality of occluded videos comprising (i) video on a firstpage displayed on a computerized device, said video on the first pageoccluded by one or more pages of a plurality of other pages sequentiallyopened and displayed on the computerized device and (ii) video onselected pages of the plurality of other pages occluded by an opening ofsubsequent pages of the other pages; receiving, by the one or moreprocessors, a selection by the user of a page of the plurality of otherpages on which to view the two or more occluded videos; transferringsimultaneously, by the one or more processors, the two or more occludedvideos to the selected page; and displaying, by the one or moreprocessors, the two or more occluded videos on the selected page forcontinuous viewing by the user.
 9. The computer program product of claim8, said displaying comprising displaying the two or more occluded videoson the selected page for continuous viewing by the user while the useris multitasking on the selected page.
 10. The computer program productof claim 8, said method comprising: identifying and retrieving, by theone or more processors, a source location of each occluded video of thetwo or more occluded videos; and inputting, by the one or moreprocessors, the source location of each occluded video of the two ormore occluded videos into source code of the selected page forimplementing said transferring the two or more occluded videos to theselected page.
 11. The computer program product of claim 8, said methodcomprising: receiving, by the one or more processors, a selection by theuser of an order of displaying the two or more occluded videos on theselected page.
 12. The computer program product of claim 8, wherein theselected page sets an order of displaying the two or more occludedvideos on the selected page.
 13. The computer program product of claim8, wherein a cloud computing system comprises the computer system. 14.The computer program product of claim 8, wherein the video on the firstpage is selected from the group consisting of video being played on thefirst page, video paused on the first page, and video stopped on thefirst page.
 15. A computer system, comprising one or more processors,one or more memories, and one or more computer readable hardware storagedevices, said one or more hardware storage device containing programcode executable by the one or more processors via the one or morememories to implement a method for rendering a video, said methodcomprising: displaying, by one or more processors of a computer system,a first page for a user on a computerized device, said first pagecomprising video; receiving, by the one or more processors, a selectionby a user of two or more occluded videos of a plurality of occludedvideos comprising (i) video on a first page displayed on a computerizeddevice, said video on the first page occluded by one or more pages of aplurality of other pages sequentially opened and displayed on thecomputerized device and (ii) video on selected pages of the plurality ofother pages occluded by an opening of subsequent pages of the otherpages; receiving, by the one or more processors, a selection by the userof a page of the plurality of other pages on which to view the two ormore occluded videos; transferring simultaneously, by the one or moreprocessors, the two or more occluded videos to the selected page; anddisplaying, by the one or more processors, the two or more occludedvideos on the selected page for continuous viewing by the user.
 16. Thecomputer system of claim 15, said displaying comprising displaying thetwo or more occluded videos on the selected page for continuous viewingby the user while the user is multitasking on the selected page.
 17. Thecomputer system of claim 15, said method comprising: identifying andretrieving, by the one or more processors, a source location of eachoccluded video of the two or more occluded videos; and inputting, by theone or more processors, the source location of each occluded video ofthe two or more occluded videos into source code of the selected pagefor implementing said transferring the two or more occluded videos tothe selected page.
 18. The computer system of claim 15, said methodcomprising: receiving, by the one or more processors, a selection by theuser of an order of displaying the two or more occluded videos on theselected page.
 19. The computer system of claim 15, wherein the selectedpage sets an order of displaying the two or more occluded videos on theselected page.
 20. The computer system of claim 15, wherein a cloudcomputing system comprises the computer system.